home *** CD-ROM | disk | FTP | other *** search
/ Developer CD Series 1995 August: Tool Chest / Dev.CD Aug 95 TC / Dev.CD Aug 95 TC.toast / Tool Chest / Interfaces / UniversalInterfaces 2.0 / PInterfaces / Icons.p < prev    next >
Encoding:
Text File  |  1995-04-18  |  11.6 KB  |  371 lines  |  [TEXT/MPS ]

  1. {
  2.      File:        Icons.p
  3.  
  4.      Contains:    Icon Utilities Interfaces.
  5.  
  6.      Version:    Technology:    System 7.5
  7.                  Package:    Universal Interfaces 2.0 in “MPW Latest” on ETO #17
  8.  
  9.      Copyright:    © 1984-1995 by Apple Computer, Inc.
  10.                  All rights reserved.
  11.  
  12.      Bugs?:        If you find a problem with this file, use the Apple Bug Reporter
  13.                  stack.  Include the file and version information (from above)
  14.                  in the problem description and send to:
  15.                      Internet:    apple.bugs@applelink.apple.com
  16.                      AppleLink:    APPLE.BUGS
  17.  
  18. }
  19.  
  20. {$IFC UNDEFINED UsingIncludes}
  21. {$SETC UsingIncludes := 0}
  22. {$ENDC}
  23.  
  24. {$IFC NOT UsingIncludes}
  25.  UNIT Icons;
  26.  INTERFACE
  27. {$ENDC}
  28.  
  29. {$IFC UNDEFINED __ICONS__}
  30. {$SETC __ICONS__ := 1}
  31.  
  32. {$I+}
  33. {$SETC IconsIncludes := UsingIncludes}
  34. {$SETC UsingIncludes := 1}
  35.  
  36.  
  37. {$IFC UNDEFINED __TYPES__}
  38. {$I Types.p}
  39. {$ENDC}
  40. {    ConditionalMacros.p                                            }
  41.  
  42. {$IFC UNDEFINED __QUICKDRAW__}
  43. {$I Quickdraw.p}
  44. {$ENDC}
  45. {    MixedMode.p                                                    }
  46. {    QuickdrawText.p                                                }
  47.  
  48. {$PUSH}
  49. {$ALIGN MAC68K}
  50. {$LibExport+}
  51.  
  52. CONST
  53. { The following are icons for which there are both icon suites and SICNs. }
  54.     genericDocumentIconResource    = -4000;
  55.     genericStationeryIconResource = -3985;
  56.     genericEditionFileIconResource = -3989;
  57.     genericApplicationIconResource = -3996;
  58.     genericDeskAccessoryIconResource = -3991;
  59.     genericFolderIconResource    = -3999;
  60.     privateFolderIconResource    = -3994;
  61.     floppyIconResource            = -3998;
  62.     trashIconResource            = -3993;
  63. { The following are icons for which there are SICNs only. }
  64.     desktopIconResource            = -3992;
  65.     openFolderIconResource        = -3997;
  66.     genericHardDiskIconResource    = -3995;
  67.     genericFileServerIconResource = -3972;
  68.     genericSuitcaseIconResource    = -3970;
  69.     genericMoverObjectIconResource = -3969;
  70. { The following are icons for which there are icon suites only. }
  71.     genericPreferencesIconResource = -3971;
  72.     genericQueryDocumentIconResource = -16506;
  73.     genericExtensionIconResource = -16415;
  74.     systemFolderIconResource    = -3983;
  75.     appleMenuFolderIconResource    = -3982;
  76.  
  77.     startupFolderIconResource    = -3981;
  78.     ownedFolderIconResource        = -3980;
  79.     dropFolderIconResource        = -3979;
  80.     sharedFolderIconResource    = -3978;
  81.     mountedFolderIconResource    = -3977;
  82.     controlPanelFolderIconResource = -3976;
  83.     printMonitorFolderIconResource = -3975;
  84.     preferencesFolderIconResource = -3974;
  85.     extensionsFolderIconResource = -3973;
  86.     fontsFolderIconResource        = -3968;
  87.     fullTrashIconResource        = -3984;
  88.     large1BitMask                = 'ICN#';
  89.     large4BitData                = 'icl4';
  90.     large8BitData                = 'icl8';
  91.     small1BitMask                = 'ics#';
  92.     small4BitData                = 'ics4';
  93.     small8BitData                = 'ics8';
  94.     mini1BitMask                = 'icm#';
  95.     mini4BitData                = 'icm4';
  96.     mini8BitData                = 'icm8';
  97.  
  98. {  alignment type values  }
  99.     atNone                        = $0;
  100.     atVerticalCenter            = $1;
  101.     atTop                        = $2;
  102.     atBottom                    = $3;
  103.     atHorizontalCenter            = $4;
  104.     atAbsoluteCenter            = atVerticalCenter + atHorizontalCenter;
  105.     atCenterTop                    = atTop + atHorizontalCenter;
  106.     atCenterBottom                = atBottom + atHorizontalCenter;
  107.     atLeft                        = $8;
  108.     atCenterLeft                = atVerticalCenter + atLeft;
  109.     atTopLeft                    = atTop + atLeft;
  110.     atBottomLeft                = atBottom + atLeft;
  111.     atRight                        = $C;
  112.     atCenterRight                = atVerticalCenter + atRight;
  113.     atTopRight                    = atTop + atRight;
  114.     atBottomRight                = atBottom + atRight;
  115.  
  116.     
  117. TYPE
  118.     IconAlignmentType = INTEGER;
  119.  
  120. {  transform type values  }
  121.  
  122. CONST
  123.     ttNone                        = $0;
  124.     ttDisabled                    = $1;
  125.     ttOffline                    = $2;
  126.     ttOpen                        = $3;
  127.     ttLabel1                    = $0100;
  128.     ttLabel2                    = $0200;
  129.     ttLabel3                    = $0300;
  130.     ttLabel4                    = $0400;
  131.     ttLabel5                    = $0500;
  132.     ttLabel6                    = $0600;
  133.     ttLabel7                    = $0700;
  134.     ttSelected                    = $4000;
  135.     ttSelectedDisabled            = ttSelected + ttDisabled;
  136.     ttSelectedOffline            = ttSelected + ttOffline;
  137.     ttSelectedOpen                = ttSelected + ttOpen;
  138.  
  139.     
  140. TYPE
  141.     IconTransformType = INTEGER;
  142.  
  143. {  Selector mask values  }
  144.  
  145. CONST
  146.     svLarge1Bit                    = $00000001;
  147.     svLarge4Bit                    = $00000002;
  148.     svLarge8Bit                    = $00000004;
  149.     svSmall1Bit                    = $00000100;
  150.     svSmall4Bit                    = $00000200;
  151.     svSmall8Bit                    = $00000400;
  152.     svMini1Bit                    = $00010000;
  153.     svMini4Bit                    = $00020000;
  154.     svMini8Bit                    = $00040000;
  155.     svAllLargeData                = $000000ff;
  156.     svAllSmallData                = $0000ff00;
  157.     svAllMiniData                = $00ff0000;
  158.     svAll1BitData                = svLarge1Bit + svSmall1Bit + svMini1Bit;
  159.     svAll4BitData                = svLarge4Bit + svSmall4Bit + svMini4Bit;
  160.     svAll8BitData                = svLarge8Bit + svSmall8Bit + svMini8Bit;
  161.     svAllAvailableData            = $ffffffff;
  162.  
  163.     
  164. TYPE
  165.     IconSelectorValue = LONGINT;
  166.  
  167.     IconActionProcPtr = ProcPtr;  { FUNCTION IconAction(theType: ResType; VAR theIcon: Handle; yourDataPtr: UNIV Ptr): OSErr; }
  168.     IconActionUPP = UniversalProcPtr;
  169.  
  170. CONST
  171.     uppIconActionProcInfo = $00000FE0; { FUNCTION (4 byte param, 4 byte param, 4 byte param): 2 byte result; }
  172.  
  173. FUNCTION NewIconActionProc(userRoutine: IconActionProcPtr): IconActionUPP;
  174.     {$IFC NOT GENERATINGCFM }
  175.     INLINE $2E9F;
  176.     {$ENDC}
  177.  
  178. FUNCTION CallIconActionProc(theType: ResType; VAR theIcon: Handle; yourDataPtr: UNIV Ptr; userRoutine: IconActionUPP): OSErr;
  179.     {$IFC NOT GENERATINGCFM}
  180.     INLINE $205F, $4E90;
  181.     {$ENDC}
  182.     
  183. TYPE
  184.     IconAction = IconActionUPP;
  185.  
  186.     IconGetterProcPtr = ProcPtr;  { FUNCTION IconGetter(theType: ResType; yourDataPtr: UNIV Ptr): Handle; }
  187.     IconGetterUPP = UniversalProcPtr;
  188.  
  189. CONST
  190.     uppIconGetterProcInfo = $000003F0; { FUNCTION (4 byte param, 4 byte param): 4 byte result; }
  191.  
  192. FUNCTION NewIconGetterProc(userRoutine: IconGetterProcPtr): IconGetterUPP;
  193.     {$IFC NOT GENERATINGCFM }
  194.     INLINE $2E9F;
  195.     {$ENDC}
  196.  
  197. FUNCTION CallIconGetterProc(theType: ResType; yourDataPtr: UNIV Ptr; userRoutine: IconGetterUPP): Handle;
  198.     {$IFC NOT GENERATINGCFM}
  199.     INLINE $205F, $4E90;
  200.     {$ENDC}
  201.     
  202. TYPE
  203.     IconGetter = IconGetterUPP;
  204.  
  205. {$IFC NOT OLDROUTINELOCATIONS }
  206.     CIcon = RECORD
  207.         iconPMap:                PixMap;                                    {the icon's pixMap}
  208.         iconMask:                BitMap;                                    {the icon's mask}
  209.         iconBMap:                BitMap;                                    {the icon's bitMap}
  210.         iconData:                Handle;                                    {the icon's data}
  211.         iconMaskData:            ARRAY [0..0] OF INTEGER;                {icon's mask and BitMap data}
  212.     END;
  213.  
  214.     CIconPtr = ^CIcon;
  215.     CIconHandle = ^CIconPtr;
  216.  
  217.  
  218. FUNCTION GetCIcon(iconID: INTEGER): CIconHandle;
  219.     {$IFC NOT GENERATINGCFM}
  220.     INLINE $AA1E;
  221.     {$ENDC}
  222. PROCEDURE PlotCIcon({CONST}VAR theRect: Rect; theIcon: CIconHandle);
  223.     {$IFC NOT GENERATINGCFM}
  224.     INLINE $AA1F;
  225.     {$ENDC}
  226. PROCEDURE DisposeCIcon(theIcon: CIconHandle);
  227.     {$IFC NOT GENERATINGCFM}
  228.     INLINE $AA25;
  229.     {$ENDC}
  230. FUNCTION GetIcon(iconID: INTEGER): Handle;
  231.     {$IFC NOT GENERATINGCFM}
  232.     INLINE $A9BB;
  233.     {$ENDC}
  234. PROCEDURE PlotIcon({CONST}VAR theRect: Rect; theIcon: Handle);
  235.     {$IFC NOT GENERATINGCFM}
  236.     INLINE $A94B;
  237.     {$ENDC}
  238. {$ENDC}
  239.  
  240. FUNCTION PlotIconID({CONST}VAR theRect: Rect; align: IconAlignmentType; transform: IconTransformType; theResID: INTEGER): OSErr;
  241.     {$IFC NOT GENERATINGCFM}
  242.     INLINE $303C, $0500, $ABC9;
  243.     {$ENDC}
  244. FUNCTION NewIconSuite(VAR theIconSuite: Handle): OSErr;
  245.     {$IFC NOT GENERATINGCFM}
  246.     INLINE $303C, $0207, $ABC9;
  247.     {$ENDC}
  248. FUNCTION AddIconToSuite(theIconData: Handle; theSuite: Handle; theType: ResType): OSErr;
  249.     {$IFC NOT GENERATINGCFM}
  250.     INLINE $303C, $0608, $ABC9;
  251.     {$ENDC}
  252. FUNCTION GetIconFromSuite(VAR theIconData: Handle; theSuite: Handle; theType: ResType): OSErr;
  253.     {$IFC NOT GENERATINGCFM}
  254.     INLINE $303C, $0609, $ABC9;
  255.     {$ENDC}
  256. FUNCTION ForEachIconDo(theSuite: Handle; selector: IconSelectorValue; action: IconActionUPP; yourDataPtr: UNIV Ptr): OSErr;
  257.     {$IFC NOT GENERATINGCFM}
  258.     INLINE $303C, $080A, $ABC9;
  259.     {$ENDC}
  260. FUNCTION GetIconSuite(VAR theIconSuite: Handle; theResID: INTEGER; selector: IconSelectorValue): OSErr;
  261.     {$IFC NOT GENERATINGCFM}
  262.     INLINE $303C, $0501, $ABC9;
  263.     {$ENDC}
  264. FUNCTION DisposeIconSuite(theIconSuite: Handle; disposeData: BOOLEAN): OSErr;
  265.     {$IFC NOT GENERATINGCFM}
  266.     INLINE $303C, $0302, $ABC9;
  267.     {$ENDC}
  268. FUNCTION PlotIconSuite({CONST}VAR theRect: Rect; align: IconAlignmentType; transform: IconTransformType; theIconSuite: Handle): OSErr;
  269.     {$IFC NOT GENERATINGCFM}
  270.     INLINE $303C, $0603, $ABC9;
  271.     {$ENDC}
  272. FUNCTION MakeIconCache(VAR theHandle: Handle; makeIcon: IconGetterUPP; yourDataPtr: UNIV Ptr): OSErr;
  273.     {$IFC NOT GENERATINGCFM}
  274.     INLINE $303C, $0604, $ABC9;
  275.     {$ENDC}
  276. FUNCTION LoadIconCache({CONST}VAR theRect: Rect; align: IconAlignmentType; transform: IconTransformType; theIconCache: Handle): OSErr;
  277.     {$IFC NOT GENERATINGCFM}
  278.     INLINE $303C, $0606, $ABC9;
  279.     {$ENDC}
  280. FUNCTION PlotIconMethod({CONST}VAR theRect: Rect; align: IconAlignmentType; transform: IconTransformType; theMethod: IconGetterUPP; yourDataPtr: UNIV Ptr): OSErr;
  281.     {$IFC NOT GENERATINGCFM}
  282.     INLINE $303C, $0805, $ABC9;
  283.     {$ENDC}
  284. FUNCTION GetLabel(labelNumber: INTEGER; VAR labelColor: RGBColor; VAR labelString: Str255): OSErr;
  285.     {$IFC NOT GENERATINGCFM}
  286.     INLINE $303C, $050B, $ABC9;
  287.     {$ENDC}
  288. FUNCTION PtInIconID(testPt: Point; {CONST}VAR iconRect: Rect; align: IconAlignmentType; iconID: INTEGER): BOOLEAN;
  289.     {$IFC NOT GENERATINGCFM}
  290.     INLINE $303C, $060D, $ABC9;
  291.     {$ENDC}
  292. FUNCTION PtInIconSuite(testPt: Point; {CONST}VAR iconRect: Rect; align: IconAlignmentType; theIconSuite: Handle): BOOLEAN;
  293.     {$IFC NOT GENERATINGCFM}
  294.     INLINE $303C, $070E, $ABC9;
  295.     {$ENDC}
  296. FUNCTION PtInIconMethod(testPt: Point; {CONST}VAR iconRect: Rect; align: IconAlignmentType; theMethod: IconGetterUPP; yourDataPtr: UNIV Ptr): BOOLEAN;
  297.     {$IFC NOT GENERATINGCFM}
  298.     INLINE $303C, $090F, $ABC9;
  299.     {$ENDC}
  300. FUNCTION RectInIconID({CONST}VAR testRect: Rect; {CONST}VAR iconRect: Rect; align: IconAlignmentType; iconID: INTEGER): BOOLEAN;
  301.     {$IFC NOT GENERATINGCFM}
  302.     INLINE $303C, $0610, $ABC9;
  303.     {$ENDC}
  304. FUNCTION RectInIconSuite({CONST}VAR testRect: Rect; {CONST}VAR iconRect: Rect; align: IconAlignmentType; theIconSuite: Handle): BOOLEAN;
  305.     {$IFC NOT GENERATINGCFM}
  306.     INLINE $303C, $0711, $ABC9;
  307.     {$ENDC}
  308. FUNCTION RectInIconMethod({CONST}VAR testRect: Rect; {CONST}VAR iconRect: Rect; align: IconAlignmentType; theMethod: IconGetterUPP; yourDataPtr: UNIV Ptr): BOOLEAN;
  309.     {$IFC NOT GENERATINGCFM}
  310.     INLINE $303C, $0912, $ABC9;
  311.     {$ENDC}
  312. FUNCTION IconIDToRgn(theRgn: RgnHandle; {CONST}VAR iconRect: Rect; align: IconAlignmentType; iconID: INTEGER): OSErr;
  313.     {$IFC NOT GENERATINGCFM}
  314.     INLINE $303C, $0613, $ABC9;
  315.     {$ENDC}
  316. FUNCTION IconSuiteToRgn(theRgn: RgnHandle; {CONST}VAR iconRect: Rect; align: IconAlignmentType; theIconSuite: Handle): OSErr;
  317.     {$IFC NOT GENERATINGCFM}
  318.     INLINE $303C, $0714, $ABC9;
  319.     {$ENDC}
  320. FUNCTION IconMethodToRgn(theRgn: RgnHandle; {CONST}VAR iconRect: Rect; align: IconAlignmentType; theMethod: IconGetterUPP; yourDataPtr: UNIV Ptr): OSErr;
  321.     {$IFC NOT GENERATINGCFM}
  322.     INLINE $303C, $0915, $ABC9;
  323.     {$ENDC}
  324. FUNCTION SetSuiteLabel(theSuite: Handle; theLabel: INTEGER): OSErr;
  325.     {$IFC NOT GENERATINGCFM}
  326.     INLINE $303C, $0316, $ABC9;
  327.     {$ENDC}
  328. FUNCTION GetSuiteLabel(theSuite: Handle): INTEGER;
  329.     {$IFC NOT GENERATINGCFM}
  330.     INLINE $303C, $0217, $ABC9;
  331.     {$ENDC}
  332. FUNCTION GetIconCacheData(theCache: Handle; theData: UNIV Ptr): OSErr;
  333.     {$IFC NOT GENERATINGCFM}
  334.     INLINE $303C, $0419, $ABC9;
  335.     {$ENDC}
  336. FUNCTION SetIconCacheData(theCache: Handle; theData: UNIV Ptr): OSErr;
  337.     {$IFC NOT GENERATINGCFM}
  338.     INLINE $303C, $041A, $ABC9;
  339.     {$ENDC}
  340. FUNCTION GetIconCacheProc(theCache: Handle; VAR theProc: IconGetterUPP): OSErr;
  341.     {$IFC NOT GENERATINGCFM}
  342.     INLINE $303C, $041B, $ABC9;
  343.     {$ENDC}
  344. FUNCTION SetIconCacheProc(theCache: Handle; theProc: IconGetterUPP): OSErr;
  345.     {$IFC NOT GENERATINGCFM}
  346.     INLINE $303C, $041C, $ABC9;
  347.     {$ENDC}
  348. FUNCTION PlotIconHandle({CONST}VAR theRect: Rect; align: IconAlignmentType; transform: IconTransformType; theIcon: Handle): OSErr;
  349.     {$IFC NOT GENERATINGCFM}
  350.     INLINE $303C, $061D, $ABC9;
  351.     {$ENDC}
  352. FUNCTION PlotSICNHandle({CONST}VAR theRect: Rect; align: IconAlignmentType; transform: IconTransformType; theSICN: Handle): OSErr;
  353.     {$IFC NOT GENERATINGCFM}
  354.     INLINE $303C, $061E, $ABC9;
  355.     {$ENDC}
  356. FUNCTION PlotCIconHandle({CONST}VAR theRect: Rect; align: IconAlignmentType; transform: IconTransformType; theCIcon: CIconHandle): OSErr;
  357.     {$IFC NOT GENERATINGCFM}
  358.     INLINE $303C, $061F, $ABC9;
  359.     {$ENDC}
  360.  
  361. {$ALIGN RESET}
  362. {$POP}
  363.  
  364. {$SETC UsingIncludes := IconsIncludes}
  365.  
  366. {$ENDC} {__ICONS__}
  367.  
  368. {$IFC NOT UsingIncludes}
  369.  END.
  370. {$ENDC}
  371.